package com.erp.erp_servers.Blueprint;

import com.erp.erp_entitys.Blueprint.BlueprintEntity;
import com.erp.erp_entitys.Blueprint.BlueprintProductEntity;
import com.erp.erp_entitys.Blueprint.res.AddBlueprintContentRes;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName IBlueprintService
 * @Description 图纸接口
 * @Author xumingbo
 * @Date 2020-09-07
 * @Version 1.0
 */
public interface IBlueprintService {
    /**
     * 按主键id删除图纸
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);
    /**
     * 添加图纸（全字段）
     * @param record
     * @return
     */
    int insert(BlueprintEntity record);
    /**
     * 添加图纸（可选字段）
     * @param record
     * @return
     */
    int insertSelective(BlueprintEntity record);

    /**
     * 按主键查询图纸
     * @param id
     * @return
     */
    BlueprintEntity selectByPrimaryKey(Integer id);

    /**
     * 按主键id修改图纸（部分字段）
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(BlueprintEntity record);
    /**
     * 按主键id修改图纸（全字段）
     * @param record
     * @return
     */
    int updateByPrimaryKey(BlueprintEntity record);

    /**
     * 查询图纸列表
     * @return
     */
    PageInfo<BlueprintEntity> selectByPage(Map<String, String> map);

    /**
     * 查询全部 图纸和产品 列表
     * @return
     */
    List<BlueprintEntity> selectBlueprintList(Map<String, Object> map);

    /**
     * 按id修改审批状态
     * @param map
     * @return
     */
    int updateBoxStatusBykey(Map<String,Object> map);

    /**
     * 按idList查询图纸
     * @param list
     * @return
     */
    List<BlueprintEntity> selectByIdList(List<String> list);

    /**
     * 审批/退回图纸
     * @param list
     * @return
     */
    int updateBoxStatus(List<BlueprintEntity> list);

    /**
     * 按idList删除图纸
     * @param idList
     * @return
     */
    int deleteByIdList(List<String> idList);

    /**
     * 按id查询图纸-产品-附件
     * @param id
     * @return
     */
    BlueprintEntity selectInfoById(Integer id);

    /**
     * 按主键id修改图纸-产品-附件
     * @param record
     * @return
     */
    int updateById(BlueprintEntity record);

    /**
     * 检查单号是否存在
     * @param number
     * @return
     */
    boolean isExist(String number);

    /**
     * 添加图纸-产品-附件
     * @param blueprint
     * @return
     */
    int insertInfo(BlueprintEntity blueprint);

    int getCountNum();


    /**
     * 新增主信息 明细
     * @param blueprint
     * @return
     */
    AddBlueprintContentRes add(BlueprintEntity blueprint);

}
